The Demo's About Box consists of the class, BounceAbout. BounceAbout is a modal dialog box derived from the VDialog class. The constructor for BounceAbout creates the "About" and "Ok" pushbuttons, using the VPushButton class. These buttons are connected to the callback member functions BounceAbout::aboutBtn() and VDialog::ok, respectively.
In addition to the two buttons, the constructor creates an event timer using the VTimer class and number of Bouncer objects. The Bouncer objects are used to hold the contents, position, and velocity of the "bouncing" text strings displayed in the About Box. The timer pauses for a few seconds and then invokes the callback member function BounceAbout::bounceThem(), which causes the Bouncer objects to move up and down.
When the user closes the About Box, the destructor destroys the VTimer object and the Bouncer objects. The two buttons are automatically destroyed.
The member function, BounceAbout::paint(), overrides the virtual function VWindow::paint() and is called whenever the About Box needs to be repainted. This function draws the text and the Liant bitmap within the About Box.
%Class:About%
How the Class View Works:
The Class View window consists of the class ClassView. ClassView is an MDI (Multiple Document Interface) window derived from the VMdiView class. The constructor for ClassView creates three child windows: a VListBox displaying a list of class categories; a VEditBox displaying information about the selected class; and a ClassTreeView displaying a graphical representation of the current class category.
ClassTreeView is derived from the VView class. It contains a description of the current "class tree" and manages painting and event handling for the tree.
ClassView contains several member functions that serve as "callback" functions for the child windows: ClassView::listClick(), which is called whenever the mouse is clicked in the list box, and ClassView::classSelected(), which is called whenever a new class is selected in the ClassTreeView. These functions cause a new class tree, and appropriate text, to be displayed.
All the text displayed in the ClassView comes from a separate message file, cvdemo.txt. The text is retrieved using a global Messenger object.
%Class:BounceAbout%
The BounceAbout class is derived from the VDialog class. It is used to implement the About Box for the demo program.
%Class:Bouncer%
The Bouncer class contains a VString, a location, and a velocity. It is used by the BounceAbout class to keep track of its "bouncing strings."
%Class:ClassInfo%
The ClassInfo class is used by the ClassTreeView class to store information about the classes that make up the class tree.
%Class:ClassTreeView%
The ClassTreeView class is derived from the VView class. It is used by the ClassView class to display a class hierarchy in tree form. It uses the ClassInfo class to store information about the class tree.
%Class:ClassView%
The ClassView class is derived from the VMdiView class. It displays information about the C++/Views class hierarchy using instances of the VListBox, VEditBox, and ClassTreeView classes.
%Class:ColorControl%
The ColorControl class is derived from the VControl class. It is an example of a customized control and is used by the Example Dialog Box and the Sketch Pad.
%Class:DemoAppView%
The DemoAppView class is derived from the VMdiAppView class. It is the main window for the C++/Views Demo. It is responsible for creating the menu bar, tool bar, and all the other windows in the demo. It also contains the callback member functions for the menu bar and tool bar.
%Class:DialogView%
The DialogView class is derived from the VDialog class. It is an example of a dialog box created with C++/Views. It's constructor creates all the controls needed by the dialog, including a customized ColorControl.
%Class:FeatureView%
The FeatureView class is derived from the VMdiView class. It displays a list of C++/Views features in a VListBox object and text for the feature in a VEditBox object.
%Class:HowView%
The HowView class is derived from the VDialog class. It is a dialog box that displays either a description or source code for a particular part of the demo program using a VEditBox object.
%Class:IntroView%
The IntroView class is derived from the VMdiView class. It displays a "C++/Views" banner and some introductory text in a VEditBox object. The banner is displayed by overriding the virtual function paint() and drawing the string "C++/Views" using the VPort and VFont classes.
%Class:Messenger%
The Messenger class retrieves messages, such as the one you are reading, from a text file. It is implemented using the VDictionary and VStream classes.
%Class:PlatformView%
The PlatformView class is derived from the VMdiView class. It displays a number of platforms supported by C++/Views using VRadioButton objects and text for the platform in a VEditBox object.
%Class:SketchView%
The SketchView class is derived from the VMdiView class and is an example of a simple C++/Views application. It manages mouse events and painting for a simple sketch pad. It uses the ColorControl class to allow the user to select new colors.
%Class:ToolBar%
The ToolBar class is derived from the VView class and is used to create the tool bar for the demo. It contains a number of VPicButton objects.
%Class:VAbout%
The VAbout class is a modal dialog designed for displaying a standard application About Box. It is derived from the VDialog class.
%Class:VAccelerator%
A VAccelerator object is used to maintain an association between an accelerator key (a virtual key code) and a member function of some object. Whenever the accelerator key is pressed the member function is called.
%Class:VAddRemoveList%
VAddRemoveList is a dialog that allows the user to add or remove elements to or from a subset of a set. The VAddRemoveList dialog presents two list boxes: one on the left containing the elements of the set and one on the right containing the elements of the subset. When the user selects items from one of these list boxes, a directional pushbutton is enabled so that the selected items can be copied to the other list. When the OK button is selected, the dialog returns the subset. This class uses the VOrdCollect class to represent the set and subset.
%Class:VAppView%
The VAppView class represents the top level window for an application. Typically you derive a new class of VAppView and use this as your application's main window.
%Class:VArchiver%
The VArchiver class implements object persistence. Using the VArchiver class you can save and retrieve objects or collections of objects to and from a file. Archival can be ASCII or binary.
%Class:VAssoc%
The VAssoc class provides a mechanism for associating two objects, one known as the key and the other known as the value. VAssoc is used in conjunction with the VDictionary class for looking up values by keys.
%Class:VAtom%
The VAtom class is specifically designed to implement the Atom name space facility of MS Windows and OS/2 PM. It is used by the VDde classes.
%Class:VBitBltr%
The VBitBltr class supports the transfer of pixels (bits) from a source display object to a destination display object. The source of the bits for transfer can be instances of the VBitMap class or instances of classes derived from the VWindow class. The destination display objects can be instances of the VBitMap class, the VPrinter class, or instances of classes derived from the VWindow class.
%Class:VBitMap%
The VBitMap class is designed to store pictorial images in a digital form. Each pixel of the image corresponds to one or more bits in the bitmap.
%Class:VBool%
The VBool class represents a boolean value: TRUE or FALSE.
%Class:VBrush%
The VBrush class defines the foreground color, background color, and fill pattern used when filling areas with the VPort class.
%Class:VButton%
The VButton class is derived from the VControl class. It provides an active area of the screen that is used to elicit a response when it is clicked on by the user. VButton is an abstract class: the various types of buttons are derived from VButton. You can create customized, user-drawn buttons by deriving a new class from VButton.
%Class:VButtonGroup%
A VButtonGroup is an abstract class representing an ordered collection of buttons.
%Class:VCheckBox%
The VCheckBox class is derived from the VButton class. It displays a square box to the left of a text label. The square box can be empty (unchecked) or marked with an x (checked). If you wish, the VCheckBox object will automatically toggle between the checked and unchecked state.
%Class:VClass%
The VClass class is used to implement class identity. Every class in the C++/Views hierarchy has a corresponding VClass object. You can use these "meta-classes" to perform run-time type-checking, construction, identification, and persistence.
%Class:VClassTable%
VClassTable is a global class that manages the meta-class information. You do not use this class directly, it is used by the VClass class.
%Class:VClipBoard%
The VClipBoard class provides access to the "system" clipboard. Using an instance of the VClipBoard object, you can put and get data from the clipboard in text or bitmap format. In addition, you can use any archivable object with the clipboard (see VArchiver).
%Class:VCollection%
A VCollection is an abstract class containing a collection of objects. Several classes are derived from it.
%Class:VComboBox%
The VComboBox is a derived from the VListBox class. It operates in the same manner as a VListBox except that it also provides a text control similar to that of the VEditLine or VTextbox classes.
%Class:VContainer%
A VContainer is an array of various elements. Its contents are automatically allocated and will expand or shrink as needed.
%Class:VControl%
The VControl class is an abstract class that provides various control mechanisms for interactive applications (such as buttons and text boxes). Each VControl object has a client object and a pointer to a "callback" member function of the client. This callback function is used to notify the client when some specific event occurs.
%Class:VControlView%
The VControlView class is designed to provide a means for treating classes derived from the VControl class (that is, VButton, VListBox, and so on) as child windows that can take on the attributes of having a title, being sizable, being movable, or having a close box (system menu).
%Class:VDde%
The VDde class is an abstract class which implements the Dynamic Data Exchange (DDE) protocol provided in MS Windows and OS/2 common to both the server and client components. The classes VDdeClient and VDdeServer are derived from it.
%Class:VDdeClient%
The VDdeClient class implements a MS Windows or OS/2 DDE client. It provides methods to initiate a session with a DDE server, send data, establish warm and hot item links, and execute commands on the server. It uses a callback mechanism to notify its C++ client object when a hot-linked data item has been sent by the server or when a warm-linked data item has changed.
%Class:VDdeServer%
The VDdeServer class implements an MS Windows or OS/2 DDE server. It operates in two modes: as an object that receives service requests from DDE clients (top-level) and as a server for a single DDE client (non-top-level). It provides methods to send item data to the client and to notify the client DDE that an item has changed.
%Class:VDialog%
The VDialog class is derived from the VPopupWindow class. It is designed to embody the user interface elements common to all specific forms of user dialog boxes. VDialog objects can be displayed as either modal or mode-less dialogs.
%Class:VDictionary%
A VDictionary is a VSet of VAssoc objects. A VDictionary is used to maintain a set of key/value object associations.
%Class:VDisplay%
The VDisplay class is an abstract class defining a array of pixels which may be written to by the VBitBltr or VPort classes. VPrinter, VBitMap, and VWindow are derived from VDisplay.
%Class:VEditBox%
The VEditBox class presents a control object which displays and edits text.
%Class:VEditLine%
The VEditLine class is derived from the VEditBox class. It contains only one line of text and hence, it does not support scroll bars. The contents of an VEditLine object can be aligned to the left, right or center. VEditLine objects support clipboard cutting and pasting, as well as a single level undo.
%Class:VEllipse%
The VEllipse class defines an elliptical region which is specified through the coordinates of a bounding rectangle.
%Class:VEvent%
The VEvent class is designed to encapsulate system dependent event dispatch information.
%Class:VExclusiveGroup%
An VExclusiveGroup is a VGroup of VButtons distributed in a presentation window. If the button type is derived from VCheckBox, then only one button may be checked at a time.
%Class:VFile%
The VFile class provides buffered access to system files. A VFile object can be associated with any file, closed, or reopened on a different file. VFile objects can be constructed, or opened, with a file name which can be provided as a C string, a VString object, or as a VPathString object.
%Class:VFileSelect%
The VFileSelect class is a modal dialog used to obtain file pathname specifications from the user. VFileSelect supports changing drives and directories as well as the filtering of file name listings.
%Class:VFont%
The VFont class defines properties of the text drawn with the VPort class. The fundamental properties of fonts are those of character style (typeface) and character type size (expressed in units called "points"). Additional properties, such as bold, italics, underlining, and strikeout, can be specified.
%Class:VFontSelect%
The VFontSelect class is a modal dialog which allows the user to select from a list of available fonts.
%Class:VFrame%
The VFrame class represents a rectangular area. It is used by the VWindow class to maintain the size and position of VWindow objects. VFrame objects are constructed using VRatio objects which can describe fixed or ratioed (percents) coordinates.
%Class:VGlobal%
VGlobal is an abstract class designed to provide a mechanism for supporting the creation and manipulation of global (that is, application-wide scope) objects within an MS Windows or OS/2 DLL.
%Class:VGroup%
A VGroup is a class representing an ordered collection of VControl objects.
%Class:VIcon%
An VIcon represents a set of small bitmaps that are used primarily as a pictorial representation of an application. VIcon objects are also used by the VIconButton class to form graphical push buttons for use in an application's dialogs and tool bars.
%Class:VIconButton%
The VIconButton class is designed to support graphical push buttons in an application. VIconButton objects have the same 3-D background as VPushButton objects, but they differ in that they display an icon instead of a text label on their surface.
%Class:VInclusiveGroup%
An VInclusiveGroup is a VGroup of VButtons arranged in a presentation window. If the button is a subclass of VCheckBox, then more than one button may be checked at a time.
%Class:VInput%
The VInput class is a modal dialog object designed for user text entry. An VInput object takes a C string for use as a prompt message to the user and, optionally, a VString object to be used as the default text entry.
%Class:VIntAssoc%
The VIntAssoc class is an association of two long integer values, one known as the key and the other known as the value.
%Class:VIntegerSet%
An VIntegerSet is a hash table of long integer values.
%Class:VIterator%
A VIterator facilitates iteration through the elements of a VCollection.
%Class:VListBox%
The VListbox maintains and displays a list of text strings. The list can be scrolled up and down by the user by way of a vertical scroll bar. VListbox objects have two callbacks: one for when the user clicks on an item in the list; and another for when the user double clicks on an item in the list. Both callbacks pass the index of the selected item to the client object.
%Class:VListSelect%
The VListSelect class is a modal dialog used either to view a list of strings, or to obtain a selection from a list of strings.
%Class:VLocation%
A VLocation is an (x,y) pair of short integers used to represent a point or a dimension in the presentation space of VDisplay objects.
%Class:VMdiAppView%
VMdiAppView is a MS Windows specific class that implements the MDI Frame window in an MDI application. A VMdiAppView is an VAppView with added functionality for constructing and interfacing with the VMdiClient object and its contained VMdiView child windows.
%Class:VMdiClient%
VMdiClient is a MS Windows specific class implementing the MDI Client window which controls and manages all the MDI child windows in an application.
%Class:VMdiView%
VMdiView is an MS Windows specific class that implements an MDI child window. Classes derived from it must always be constructed as children of an VMdiAppView derived class.
%Class:VMemory%
The VMemory class is used to manage portable memory allocation for C++/Views. It is a fully static class--only one instance of it is constructed per application.
%Class:VMenu%
The VMenu class implements the menu bar for an application's top level window.
%Class:VMenuItem%
The VMenuItem class implements the automatic menu item selection process for VPopupMenu objects. A VMenuItem object defines the linkage of a label on a menu to a specific method of a client object. When a VMenuItem is selected with the mouse (or keyboard) a callback message is automatically sent to the client object. VMenuItem objects can be checked/unchecked or disabled/enabled, and they can have their client, callback method selector, and label attributes manipulated.
%Class:VMouseCursor%
The VMouseCursor represents the visual appearance of the GUI system's pointing device on the display screen. VMouseCursor objects can be constructed from a set of pre-defined shapes or user-defined VMouseCursor objects can be constructed from a system resource.
%Class:VMultiListBox%
The VMultiListbox maintains and displays a list of text strings. The difference between a VMultListBox object and a VListBox object is that a VMultListBox object allows the user to select more than one string.
%Class:VMultiSelect%
The VMultiSelect class is a modal dialog used to obtain one or more selections from a list of strings or to simply view a list of strings.
%Class:VNotifier%
The VNotifier class is the centralized controller class of the C++/Views MVC paradigm. The VNotifier handles events such as mouse events, timer events, keyboard focus changes, keyboard inputs, window exposures, window size changes, and window movements.
%Class:VObjArray%
A VObjArray is a VContainer of objects.
%Class:VObject%
The VObject class is the principle root of the C++/Views class hierarchy. The VObject is an abstract base class supporting the notions of class object copying, performing methods, archival, comparison, and equivalence.
%Class:VOrdCollect%
A VOrdCollect is a VCollection whose objects are ordered from 0 to count() - 1. The contents of a VOrdCollect object are expanded to accommodate new objects.
%Class:VPathString%
VPathString represents a platform independent file and/or directory name. It provides methods for checking for the existence of and access permissions of files, obtaining or setting the current working directory, and manipulating component parts of a file and/or directory name.
%Class:VPen%
The VPen class defines properties of lines drawn in the VPort class. Three properties are defined: width, color, and pattern.
%Class:VPicButton%
The VPicButton class is designed to support graphical, picture based buttons in an application using VBitMap objects.
%Class:VPointArray%
A VPointArray is a VContainer of points (x-y pairs of short integers).
%Class:VPolygon%
The VPolygon class defines a polygonal region by way of a set of points.
%Class:VPopupMenu%
A VPopupMenu object contains an ordered collection of VMenuItem or VPopupMenu objects that implement the automatic menu selection process. The VPopupMenu class implements methods for altering names and states of the menu items. For example, menu items can be enabled/disabled and checked/unchecked.
%Class:VPopupWindow%
The VPopupWindow class is derived from the VView class. When displayed, it appears in front of and on top of all other windows in an application. VPopupWindow objects must have a parent window, but they are not clipped by their parent window.
%Class:VPort%
The VPort class is the main graphic output class. VPort objects provide functions for drawing and painting simple shapes, drawing lines, drawing text, and performing viewing transformations. The VPort class uses a VPen object to specify the properties of stroked objects, such as lines; a VBrush object to specify the properties of filled objects, such as rectangles and circles; and a VFont object specify the properties of text objects.
VPort objects may be opened on VWindow objects, VBitMap objects, or VPrinter objects.
%Class:VPrintDialog%
The VPrintDialog class is a modal dialog which allows the user to choose from a list of available printers.
%Class:VPrinter%
The VPrinter class supports text and graphics output to a printer device that is connected to the computer running the application. VPort objects may be used to support full graphic output to a printing device.
%Class:VPushButton%
A VPushButton is a button that is displayed with a border surrounding its text contents. VPushButton objects can be highlighted or unhighlighted. VPushButton objects can also have the automatic attribute which provides for an automatic toggle between the hilighted and unhighlighted states.
%Class:VRadioButton%
A VRadioButton is a button displayed with a small circle to the left of its text content (label). The circle can be empty to imply unchecked or filled with black to imply checked. If a VRadioButton object has the automatic attribute, then it will automatically toggle between the checked and unchecked state.
%Class:VRatio%
VRatio is a class used with the VFrame class to implement framing ratios, or actual coordinates, between a child VWindow's coordinates and its parent. If constructed with a float, then the VRatio object represents a ratio of the parent VWindow's client region.
%Class:VRectangle%
The VRectangle class represents a rectangular area. A VRectangle object can be described by an origin (the top left corner) and a corner (the bottom right corner) point; or by an origin and an extent point (the width and height of the rectangle).
%Class:VRegion%
A VRegion is an abstract super class which represents a closed area. Classes derived from VRegion implement different types of closed regions.
%Class:VReport%
A VReport is a modal dialog that presents a message to the user.
%Class:VRoundRect%
The VRoundRect class defines a region formed by the intersection of a VRectangle and an VEllipse. The amount of rounding is given by a roundness parameter, which gives the dimensions of the bounding rectangle of the ellipse relative to the dimensions of the rectangle.
%Class:VScrollBar%
The VScrollBar class provides a mechanism for the user to visually select a value from a range of possible values using a scroll bar.
%Class:VSerial%
The VSerial class allows buffered input and output with the computer's asynchronous ports. The VSerial class implements error handling, flow control, hardware handshaking, and serial port configuration.
%Class:VSet%
A VSet is a VCollection of non-matching objects.
%Class:VShade%
The VShade class is used to perform 3-D shading within VDisplay objects. This class is often used to create the chiseled steel look on VWindow objects. The VShade supports both lines and rectangles.
%Class:VStack%
A VStack is a first-in-last-out VOrdCollect.
%Class:VStream%
A VStream is an array of bytes.
%Class:VString%
A VString is a NULL terminated string of ASCII characters.
%Class:VSysMenu%
The VSysMenu class represents the system menu associated with the setting of the close box on a VView object.
%Class:VTagStream%
The VTagStream class allows flexible placement and replacement of tags within VStream objects. A tag is one or more characters delimited by a starting and ending character.
%Class:VTextBox%
The VTextBox class displays a character string aligned either left, right or centered within a window. VTextBox objects do not respond to mouse or keyboard events.
%Class:VTextEditor%
The VTextEditor supports the editing of text contained by VString objects. VTextEditor objects automatically create both vertical and horizontal scroll bars, and they can produce a ready-made VPopupMenu menu object to support searching functions.
%Class:VTimer%
The VTimer class is used to provide timed events to client objects. Timing events can be set up to occur periodically (that is, every so many milliseconds) or for a specific time interval (one-shots).
%Class:VToFromStream%
The VToFromStream class is used to read data from one VStream to a another VStream.
%Class:VTokens%
The VTokens class defines the tokens to be scanned by VTokenStream. A token is zero or more contiguous characters in a VStream. A token has a type and a value. A token type may either be user-specified or a built-in integer value. A token value is a string of characters which comprise the token.
%Class:VTokenStream%
The VTokenStream class defines a lexical scan from one VStream to another VStream. A VTokens object defines the tokens used by the VTokenStream.
%Class:VTriState%
A VTriState is a button that is displayed with a square box to the left of its text content (label). The square box can be empty (unchecked), marked with an x (checked), or be "grayed" and unselectable (VTriState). If a VTriState object has the automatic attribute, then it will automatically toggle between the checked and unchecked state.
%Class:VView%
The VView class is a subclass of VWindow that provides the basis for building application specific views and sub-views within the MVC program paradigm.
%Class:VWindow%
The VWindow class is an abstract super class that defines attributes common to all windows: sizing, moving, event protocols, creating, destroying, managing of children, and so on. A VWindow object is usually bound to a presentation space which is the visual representation of the VWindow object in the underlying GUI system.
%Class:VYesNo%
The VYesNo class is a modal dialog that presents a question to the user and solicits a YES, NO, or possibly a CANCEL response.
%ClassIntro:Data Classes%
The C++/Views data classes provide a rich assortment of objects for containing and managing your application's data.
%ClassIntro:Demo Classes%
These classes were created especially for the C++/Views Demo Program. (The classes whose names start with a 'V' are from the C++/Views library.)
%ClassIntro:Dialog Classes%
The C++/Views dialog classes provide means for creating and displaying dialog boxes. In addition, a number of pre-built dialogs are available, such as file selection, font selection, printer selection, about, and yes/no dialogs.
%ClassIntro:Event Classes%
The C++/Views event classes manage and simplify the flow of events in a GUI application. These classes let you process events, create menus, assign keyboard accelerators, and create timers.
%ClassIntro:General%
C++/Views contains a complete set of classes representing various GUI objects. In addition C++/Views offers a set of data classes.
Choose a topic from the list on the left to browse the corresponding class hierarchy.
%ClassIntro:Graphics Classes%
The C++/Views graphics classes give you easy-to-add graphics to your applications including fonts, brushes, pens, regions, bitmaps, icons, 3-D shading, and printer support.
%ClassIntro:Interface Classes%
The C++/Views interface classes include all the standard GUI objects: buttons, edit boxes, text editors, scroll bars, and more.
%ClassIntro:String and Stream Classes%
C++/Views includes a set of string and stream classes to simplify application development.
%ClassIntro:Window Classes%
The C++/Views window classes let you easily create and control windows. Through inheritance, it is easy to create your own new window types. C++/Views also supports Multiple Document Interface (MDI) and Dynamic Data Exchange (DDE).
%ClassList:Data Classes%
(VObject 0 50 105)
(VAssoc VObject 150 25)
(VIntAssoc VAssoc 250 25)
(VCollection VObject 150 62)
(VOrdCollect VCollection 250 62)
(VStack VOrdCollect 350 50)
(VSet VOrdCollect 350 75)
(VDictionary VSet 450 75)
(VContainer VObject 150 125)
(VIntegerSet VContainer 250 100)
(VObjArray VContainer 250 125)
(VPointArray VContainer 250 150)
(VIterator VObject 150 175)
%ClassList:Demo Classes%
(VMdiAppView 0 50 15)
(DemoAppView VMdiAppView 150 15)
(VControl 0 50 38)
(ColorControl VControl 150 38)
(VView 0 50 92)
(ToolBar VView 150 69)
(VMdiView VView 150 92)
(ClassTreeView VView 150 115)
(ClassView VMdiView 250 46)
(FeatureView VMdiView 250 69)
(IntroView VMdiView 250 92)
(PlatformView VMdiView 250 115)
(SketchView VMdiView 250 138)
(VDialog 0 50 171)
(DialogView VDialog 150 148)
(HowView VDialog 150 171)
(BounceAbout VDialog 150 194)
(Messenger 0 50 207)
(Bouncer 0 50 230)
(ClassInfo 0 50 253)
%ClassList:Dialog Classes%
(VView VWindow 50 115)
(VPopupWindow VView 150 115)
(VDialog VPopupWindow 250 115)
(VAbout VDialog 350 23)
(VFileSelect VDialog 350 46)
(VFontSelect VDialog 350 69)
(VInput VDialog 350 92)
(VListSelect VDialog 350 115)
(VMultiSelect VDialog 350 138)
(VPrintDialog VDialog 350 161)
(VReport VDialog 350 184)
(VYesNo VDialog 350 207)
%ClassList:Event Classes%
(VObject 0 50 75)
(VNotifier VObject 150 25)
(VMenu VObject 150 50)
(VPopupMenu VMenu 250 50)
(VSysMenu VPopupMenu 350 50)
(VMenuItem VObject 150 75)
(VMouseCursor VObject 150 100)
(VTimer VObject 150 125)
%ClassList:Graphics Classes%
(VObject 0 50 125)
(VBitBltr VObject 150 23)
(VBrush VObject 150 46)
(VDisplay VObject 150 69)
(VBitMap VDisplay 250 46)
(VPrinter VDisplay 250 69)
(VWindow VDisplay 250 92)
(VFont VObject 150 92)
(VFrame VObject 150 115)
(VIcon VObject 150 207)
(VPen VObject 150 138)
(VPort VObject 150 161)
(VRegion VObject 150 184)
(VPolygon VRegion 250 173)
(VRectangle VRegion 250 196)
(VEllipse VRectangle 350 184)
(VRoundRect VRectangle 350 207)
(VShade VObject 150 230)
%ClassList:Interface Classes%
(VControl 0 50 115)
(VButton VControl 150 57)
(VCheckBox VButton 250 34)
(VRadioButton VCheckBox 350 23)
(VTriState VCheckBox 350 46)
(VPushButton VButton 250 80)
(VIconButton VPushButton 350 69)
(VPicButton VPushButton 350 92)
(VGroup VControl 150 115)
(VButtonGroup VGroup 250 115)
(VInclusiveGroup VButtonGroup 350 115)
(VExclusiveGroup VInclusiveGroup 450 115)
(VListBox VControl 150 149)
(VComboBox VListBox 250 138)
(VMultiListBox VListBox 250 161)
(VScrollBar VControl 150 184)
(VTextBox VControl 150 207)
(VEditBox VTextBox 250 207)
(VEditLine VEditBox 350 196)
(VTextEditor VEditBox 350 219)
%ClassList:List%
(Data Classes)
(Demo Classes)
(Dialog Classes)
(Event Classes)
(Graphics Classes)
(Interface Classes)
(String and Stream Classes)
(Window Classes)
%ClassList:String and Stream Classes%
(VString 0 50 50)
(VStream VString 150 50)
(VFile VStream 250 25)
(VArchiver VFile 350 25)
(VSerial VStream 250 50)
(VToFromStream VStream 250 75)
(VTagStream VToFromStream 350 75)
(VTokenStream VTagStream 450 75)
(VPathString VString 150 100)
(VTokens 0 50 125)
%ClassList:Window Classes%
(VDisplay 0 50 75)
(VWindow VDisplay 150 75)
(VDde VWindow 250 36)
(VDdeServer VDde 350 25)
(VDdeClient VDde 350 50)
(VMdiClient VWindow 250 75)
(VView VWindow 250 111)
(VAppView VView 350 100)
(VMdiAppView VAppView 450 100)
(VPopupWindow VView 350 125)
%Dialog:About%
How the Sample Dialog Box Works:
The Sample Dialog Box is an example of a dialog box created using C++/Views and shows how to use both standard, GUI controls (e.g., edit lines, combo boxes), and custom controls (e.g., color control).
The Sample Dialog Box consists of the class, DialogView. DialogView is a modal dialog box derived from the VDialog class. The constructor for DialogView creates a number of control objects. Specifically, it creates a VEditLine, a VComboBox, a VExclusiveGroup, a VListBox, a ColorControl, and several VPushButton objects. The constructor also assigns default values to the various controls.
The VPushButton and VListBox objects are connected to callback member functions within DialogView.
%Feature:About%
How the Feature List View Works:
The Feature List window consists of the class FeatureView. FeatureView is an MDI (Multiple Document Interface) window derived from the VMdiView class. The constructor for FeatureView creates two child windows: a VListBox displaying a list of features and a VEditBox displaying information about the selected feature. The constructor also reads the list of features from the demo message file.
FeatureView contains two member functions that serve as "callback" functions for the VListBox: FeatureView::listClick() and FeatureView:doubleClick(), which are called whenever the mouse is clicked or double-clicked in the list box. FeatureView::listClick() displays text about the selected feature in the VEditBox.
All the text displayed in the FeatureView comes from a separate message file, cvdemo.txt. The text is retrieved using a global Messenger object.
%Features:Intro%
C++/Views is the leading C++ class library for rapidly building portable GUI applications. Liant C++/Views contains more than 100 proven classes that help shield developers from the complexities of today's GUI programming, reducing GUI development time up to 75 percent. C++/Views is compiler independent and includes C++/Browse, a powerful source code browser and editor for building C++ applications and creating new C++ classes.
%Features:List%
(ï 100+ Proven Object Classes)
(ï Cross-Platform Portability)
(ï Native Interface Components)
(ï Fast and Simple GUI Development)
(ï C++/Browse)
(ï Compiler Independence)
(ï Inheritance)
(ï Free Source Code)
(ï No Royalties)
(ï C++/Views Customer Support)
%Features:ï 100+ Proven Object Classes%
Liant C++/Views provides more than 100 ready-to-use classes including, standard classes for interface components such as windows, dialog boxes, menus, buttons, and special classes to handle serial ports, timers, printers, dynamic data exchange, and dynamic link libraries. Views also includes data classes to handle collections, dictionaries, sets, strings, and files. All our object classes can be modified to meet your individual needs.
%Features:ï C++/Browse%
C++/Browse is C++/Views' powerful source code browser and editor for building C++ applications and creating new C++ classes. C++/Browse automatically keeps header files up to date and creates make and linker response files. C++/Browse reads and writes standard C++ code so it can be used with non-GUI classes or used in conjunction with your favorite text editor. Additionally, C++/Browse is a great learning tool. C++/Browse's visual approach helps novice C++ developers up the C++ learning curve. For those developers who prefer their traditional editor, use of C++/Browse is completely optional.
%Features:ï C++/Views Customer Support%
All registered users receive C++/Views telephone support privileges. Users can call Liant's User Interface Tools support from 9 AM to 5 PM EST (508-875-2294) or contact us by electronic mail through the Internet (support@lpi.liant.com) for prompt service from one of our support representatives. Moreover, customers can access Liant's User Interface Bulletin Board Service (508-626-0681) for up to minute information from our support network. Watch for more extended C++/Views support services in the future.
%Features:ï Compiler Independence%
C++/Views doesn't limit you to a particular compiler. It takes advantage of the tools you already have on your desktop. C++/Views supports Borland C++, Microsoft C++, Zortech C++, Liant's C++, or any cfront 2.1 compatible C++ compiler.
%Features:ï Cross-Platform Portability%
C++/Views is the answer to cross-platform application development. C++/Views applications can be ported across environments such as Microsoft Windows, OS/2 Presentation Manager, UNIX/Motif and others. GUI applications created on one platform can be easily moved to another, just by recompiling. Because of this powerful portability feature, C++/Views can satisfy your application development needs today and prepare you for technology investments tomorrow.
%Features:ï Fast and Simple GUI Development%
Any developer who has tackled the task of GUI programming knows how cumbersome it can be. C++/Views shields you from the complexities of the underlying GUI's application programming interface to help simplify and speed up GUI programming.
%Features:ï Free Source Code%
All registered users receive the C++/Views source code free of charge. The source code comes complete with numerous examples of C++ techniques to help you with your C++ development.
%Features:ï Inheritance%
C++/Views provides flexibility through the unique object-oriented feature of Inheritance. With Inheritance, you can easily create new or customized objects to fit your specific application requirements.
%Features:ï Native Interface Components%
Our interface components are native, not simulated. This allows applications built with C++/Views to take on the look and feel of the GUI on which it is running. With C++/Views, your applications will have the GUI presentation and functionality you have come to expect.
%Features:ï No Royalties%
There are no royalties or run-time license fees associated with C++/Views.
%How:About%
How the "How it works" Dialog Works:
The "How-it-works" dialog consists of the class HowView. HowView is derived from the VDialog class. The constructor for HowView creates a number of VPushButton objects and a VEditBox for displaying information.
HowView contains member functions that serve as "callback" functions for the various VPushButton objects. These functions switch between text and source code or quit the dialog.
All the text displayed in How-it-works window comes from a C++ source file or a separate message file, cvdemo.txt. The text is retrieved using a global Messenger object.
%Intro:About%
How the Introductory View Works:
The Introductory View displays a "C++/Views" banner and some introductory text.
The Introductory View window consists of the class IntroView. IntroView is an MDI (Multiple Document Interface) window derived from the VMdiView class. The constructor for IntroView creates a VEditBox child window which is used to display the introductory text.
IntroView displays the banner by overriding the virtual function paint() and drawing the string "C++/Views" using the VPort and VFont classes.
The introductory text displayed in the IntroView comes from a separate message file, cvdemo.txt. The text is retrieved using a global Messenger object.
%Order:Intro%
To find the name of the nearest C++/Views distributor, select a region from the list above.
%Order:List%
(North America)
(Norway)
(Sweden)
(United Kingdom)
(Italy)
(France)
(Benelux)
(Germany, Austria, Switzerland)
(Denmark)
(Finland)
(Rest of Europe)
(Hong Kong)
(Japan)
(Korea)
(Taiwan)
(China)
(Argentina)
(Brazil)
(Chile)
(Mexico)
(Venezuela)
(Uruguay)
(Australia)
(New Zealand)
(Indonesia)
(Other International)
%Order:North America%
Liant Software Corporation
959 Concord Street
Framingham, MA 01701
Tele: (800) 237-1873
Fax: (508) 820-0035
or one of our U.S. authorized resellers or distributors
%Order:Norway%
PC Computing
Waldemar Thranesgt. 98b
0175 Oslo
Norway
Tele: +47 2 384 888
Fax: +47 2 384 856
Multix
Gjerdrums vei 12
N-0486 Oslo 4
Norway
Tele: +47 2 950 800
Fax: +47 2 950 790
Ravenholm Computing
Waldenmarthranesgt. 77
0175 Oslo
Norway
Tele: +47 2 11 09 50
Fax: +47 2 11 12 20
%Order:Sweden%
Esselte System Int
P.O. Box 1374
17127 Solna
Sweden
Tele: +46 8 734 3512
Fax: +46 8 730 0806
LinSoft
Box 634
58107 Linkoeping
Sweden
Tele: +46 1311 1588
Fax: +46 1315 2429
%Order:United Kingdom%
Instrumatic UK Ltd
First Avenue
Globe Park
Marlow
BUCKS SL7 1YA
United Kingdom
Tele: +44 0628 476 741
Fax: +44 0628 474 440
Systemstar
The Red House, Bluecoast
SG14 1AX Hertford
United Kingdom
Tele: +44 992 500919
Fax: +44 992 554261
%Order:Italy%
Instrumatic srl
Via Piave 22/A
20016 Pero (MI)
Italy
Tele: +39 2 381 030 80
Fax: +39 2 381 013 48
Soft Team
Via Croce Rossa, 5
35129 Padova
Italy
Tele: +39 49 82 91285
Fax: +39 49 82 91296
%Order:France%
Instrumatic France
7 Avenue des Andes
91952 Les Ulis Cedex
France
Tele: +33 (1) 690 702 94
Fax: +33 (1) 690 704 92
Smartline
30, rue Saint Andre des Arts
75006 Paris
France
+33 1 4634 6419
+33 1 4046 8589
ISE
Immeuble Energy 1
32 Avenue de l'Europe
78140 Velizy
France
Tele: +33 1 348 898 89
Fax: +33 1 348 898 00
Softway France
Immeuble Energy 1
32 Avenue de l'Europe B.P. 126
78148 Velizy
France
Tele: +33 139 46 1616
Fax: +33 130 70 6666
%Order:Benelux%
A Line Systems
Energiestraat 33
1411 AR Naarden
Netherlands
Tele: +31 2159 56555
Fax: +31 2159 43245
%Order:Germany, Austria, Switzerland%
ESM Software
Schlosserstr. 4
7440 Nuertingen
Germany
Tele: +49 7022 34077
Fax: +49 7022 35590
%Order:Denmark%
Ravenholm Computing
Maglebjergvej 5 B
2800 Lyngby
Denmark
Tele: +45 42 88 72 49
Fax: +45 42 88 73 23
%Order:Finland%
H & P Software Engineering Centre
Piispanportii 5
02240 Espoo
Finland
+358 0 804 05350
+358 0 804 05222
%Order:Rest of Europe%
Liant Software GmbH
Alt-Moabit 91 B
W-1000 Berlin 21
Germany
+49 (0) 30-391-5045
+49 (0) 30-393-4398
Liant Software Limited
2 Caxton Street
London SW1H 0QE
United Kingdom
Tele: +44 (0)71-799-2434
Fax: +44 (0)71-799-2552
%Order:Hong Kong%
MacTronic
Unit 2 6/F., Fook Hong Industrial Bldg.
19 Sheung Yuet Road
Kowloon Bay, Kowloon
Hong Kong
Tele: 852-7582782
Fax: 852-7988831
%Order:Japan%
Nippon Liant Ltd.
31-8 Takasecho
Funabashi City,
Chiba 273 Japan
Tele: 81-(0)47-437-9816
Fax: 81 (0)47-437-9818
%Order:Korea%
Daou Technology Inc.
6Fl, Daehenng Bldg 6 64823
Yuksam Dong, Gangnam-Gu
Seoul Korea
Tele: 822-556-1251
Fax: 822-555-0141
%Order:Taiwan%
Acer TWP Corporation
#19-1, Lane 231
Fu Hsin North Road
Taipei, Taiwan R.O.C.
Tele: 886-2-713-6959
Fax: 886-2-715-1950
%Order:China%
E Star
14, Alley 1, Lane 69, Sec. 5
Ming-Sheng East Road
Taipei, Taiwan, R.O.C.
Tele: 886-2-763-9820
Fax: 886-2-765-8720
%Order:Argentina%
A-Data
Corrientes 821, P.6
(1043) Bueno Aires,
Argentina
Tele: 541-394-5195
Fax: 541-322-5240
%Order:Brazil%
A-Data
Avenida Brigadeiro Faria Lima, 613
Suite #84, CEP: 1451
JD Paulistano
Sao Paulo, S.P. Brazil
Tele: 5511-820-4100
Fax: 5511-820-4100
MIPS
Av. Rio Branco 131/1701
Rio de Janiero -20040- Brazil
Tele: 5521-507-1839
Fax: 5521-507-1468
%Order:Chile%
Terabyte Software
La Concepcion 80
Santiago, Chile
Tele: 562-235-5310
Fax: 562-235-9699
%Order:Mexico%
Multisistemas/MMC
Shakespear No. 15 ler piso
Mexico City, Mexico 11590
Tele: 525-255-0011
Fax: 525-203-2081
%Order:Venezuela%
LRM Software, Inc.
Edf. Anauco, Nivel S1
Local 1CS1-11, Parque Central
Caracas 1010, Venezuela
Tele: 582-573-4534
Fax: 582-576-3062
%Order:Uruguay%
Pro-Info
Jose Enrique Rodo 1955
C.P. 11200
Montevideo, Uruguay
Tele: 598-241-9985
Fax: 598-242-0673
%Order:Australia%
Microway Software
Unit 1/16 Tarnard Drive
Braeside, Victoria 3195
Australia
Tele: 613-580-1333
Fax: 613-580-8995
Noble Systems
69 Palace Street
Petersham, NSW 2049
Australia
Tele: 612-564-1200
Fax: 612-564-1465
Stiearc Systems Pty. Ltd.
Unit 7, 43-47 Trafalgar Street
Annandale NSW 2038 Australia
Tele: 612-550-1006
Fax: 612-550-1053
%Order:New Zealand%
Napier Computer Systems
390 Montreal Street
Christchurch, New Zealand
Tele: 643-3-771-861
Fax: 643-3-771-864
%Order:Indonesia%
Pt. Citrathirza Astarijaya
Jl. Ungaran No. 9
Jakarta 12850 Indonesia
Tele: +21 830 1783
Fax: +21 829 0789
%Order:Other International%
International Sales Manager
Liant Software Corporation
8911 Capital of Texas Highway North
Austin, TX 78759
Tele: (512) 343-1010
Fax: (512) 343-9487
%Platform:About%
How the List of Supported Platforms View Works:
The Platform List window consists of the class PlatformView. PlatformView is an MDI (Multiple Document Interface) window derived from the VMdiView class. The constructor for PlatformView creates two child windows: a VExclusiveGroup containing a number of VRadioButtons and a VEditBox displaying information about the selected feature. The radio buttons correspond to the various platforms supported by C++/Views.
The member function, PlatformView:radioChanged(), serves as a "callback" function for the VExclusiveGroup. It is called whenever the user selects a new radio button and updates the text displayed in the VEditBox.
All the text displayed in the FeatureView comes from a separate message file, cvdemo.txt. The text is retrieved using a global Messenger object.
%Platform:Motif%
C++/Views for Motif supports OSF/Motif version 1.1.2 or above.
We support a number of platforms, such as SCO and SUN, and support a number of C++ compilers, including our own Liant C++. Please call for more details.
%Platform:Others%
We are working on versions of C++/Views for other platforms. If you are interested in a particular platform and it not listed here, give us a call.
%Platform:PM%
C++/Views for OS/2 supports Presentation Manager 1.3 and 2.0 for the Zortech C++ 3.0 compiler.
We are currently working on an OS/2 32-bit version for the Zortech C++ and Borland C++ compilers.
%Platform:Windows%
C++/Views for Windows supports Microsoft Windows 3.0 and 3.1 for the Borland C++ 3.0 and 3.1, Microsoft C++ 7.0, and Zortech C++ 3.0 compilers.
We are currently working on a 32-bit version for Windows NT.
%Sketch:About%
How the Sketch Pad Works:
The Sketch Pad is a simple drawing program intended to show you how to use C++/Views to perform basic GUI operations.
The Sketch Pad window consists of the class SketchView. SketchView is an MDI (Multiple Document Interface) window derived from the VMdiView class. The constructor for SketchView creates a child window using the ColorControl class (also used by the Sample Dialog). The constructor also creates a VPort and VPen object for graphical output, and a VPointArray object to store the points which comprise the "sketch." These object are destroyed by the SketchView destructor.
SketchView handles GUI events by overriding a number of virtual functions: paint(), is called in response to a "paint" request from the GUI system and refreshes the current image; mouseDn() is called whenever a mouse button is pressed in the SketchView; mouseDn() is called whenever a mouse button is moved in the SketchView; and, mouseUp() is called whenever a mouse button is released in the SketchView. The mouse functions draw lines in the SketchView window using the VPort object and update the "shadow" image contained in the VPointArray. The shadow image is used by the paint() member function. This occurs whenever the window needs to be refreshed, such as when you cover it with another window and then remove that window.
The member function, SketchView:newColor(), serves as a "callback" function for the ColorControl. It is called whenever the user selects a new color.
%Startup:Text%
Welcome to the C++/Views Demo Program!
This program was created using the C++/Views class library. It is intended to give you an overview of C++/Views' features and show you how easy it is to create applications with C++/Views.
The Demo includes the following sections:
Classes: A window shows the many classes that comprise the C++/Views class hierarchy in graphical form. Using the mouse, you can click on any class and get a short description.
Features: A window displays a list of important C++/Views features. You can select any feature and get a more in-depth description.
Platforms: A window displays a list of platforms supported by C++/Views. By choosing from the list, you can find out more about C++/Views for that platform.
Example Dialog: This displays a sample dialog box created using C++/Views. The dialog contains both standard and customized dialog controls.
Example Sketch Pad: This displays a simple sketch pad created using C++/Views.
About the Current Window: This feature gives you a description of how a particular part of the Demo program works and lets you view the source code for it.
Enjoy your tour of the C++/Views demo. If you have any questions, please give us a call!